package com.sfj.system.enums;

import java.util.ArrayList;
import java.util.List;

/**
 * @author kaka
 * @Date 2025/08/25
 */
public enum ProblemTypeEnum {
    工作要点("工作要点", null),
    警务督察工作提示("警务督察工作提示", null),

    // 警务督察专报（父级）
    //警务督察专报("警务督察专报", null),
    政治建设("政治建设", "警务督察专报"),
    责任落实("责任落实", "警务督察专报"),
    队伍管理("队伍管理", "警务督察专报"),
    监管执法("监管执法", "警务督察专报"),
    顽瘴痼疾("顽瘴痼疾", "警务督察专报"),

    典型督察案例("典型督察案例", null),
    警务督察整改通知书("警务督察整改通知书", null),
    全面从严管党治警督办提示单("全面从严管党治警督办提示单", null),
    信息报表("信息报表", null),
    日常自查自报("日常自查自报", null),
    其他("其他", null)
    ;

    private final String label;
    private final String parent;

    ProblemTypeEnum(String label, String parent) {
        this.label = label;
        this.parent = parent;
    }

    public String getLabel() {
        return label;
    }

    public String getParent() {
        return parent;
    }

    /**
     * 获取某个父级下的子类型
     */
    public static List<ProblemTypeEnum> getChildren(String parentLabel) {
        List<ProblemTypeEnum> list = new ArrayList<>();
        for (ProblemTypeEnum type : ProblemTypeEnum.values()) {
            if (parentLabel.equals(type.getParent())) {
                list.add(type);
            }
        }
        return list;
    }

    /**
     * 根据label查找枚举
     */
    public static ProblemTypeEnum fromLabel(String label) {
        for (ProblemTypeEnum type : ProblemTypeEnum.values()) {
            if (type.getLabel().equals(label)) {
                return type;
            }
        }
        return null;
    }
}

